/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Ingresos;
import javax.persistence.EntityManagerFactory;
import Entidades.Edificio;
import Controladores.EdificioJpaController;
import Controladores.exceptions.IllegalOrphanException;
import Controladores.exceptions.NonexistentEntityException;
import java.util.logging.Level;
import java.util.logging.Logger;
import Usuarios.conexion;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
/**
 *
 * @author Victor Jose Betancohurt
 */
public class IEdificio 
{
    public IEdificio ()
    {
    }
    //procedimiento guardar para la tabla Edificio victor Betancohurt
    public void guardar(String Nombre)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        Edificio edificio = new Edificio();
        EdificioJpaController controlador = new EdificioJpaController(emf);
        edificio.setNombre(Nombre);
        edificio.setAnulado(false);
        controlador.create(edificio);
    }
    //procedimiento modificar donde modifica todo Victor Betancohurt
    public void modificar(Edificio edificio)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EdificioJpaController controlador = new EdificioJpaController(emf);
        try {
            controlador.edit(edificio);
        } catch (IllegalOrphanException ex) {
            Logger.getLogger(IEdificio.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(IEdificio.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(IEdificio.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    //funcio buscar por ID y regresa una clase de Edificio
    public Edificio buscarId(int id)
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
         EdificioJpaController controlador = new EdificioJpaController(emf);
         return controlador.findEdificio(id);
    }
    //funcion buscar por nombre y regresa una clase lista tipo Edificioo
    public List<Edificio> buscarNombre(String nombre)
    {
         EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Edificio.findByNombre");
        qr.setParameter("nombre", nombre);
        List<Edificio> lista = qr.getResultList();
        return lista;
    }
    public List<Edificio> mostrarTodo()
    {
         EntityManagerFactory emf = conexion.getInstancia().getEMF();
         EdificioJpaController controlador = new EdificioJpaController(emf);
         return controlador.findEdificioEntities();
    }
    public String toString(int id)
    {
        Edificio edificio = this.buscarId(id);
        return edificio.toString();
    }
    public List<Edificio> mostrarTodoFalse()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Edificio.findByAnulado");
        qr.setParameter("anulado", false);
        List<Edificio> lista = qr.getResultList();
        return lista;
    }
    public List<Edificio> mostrarTodoTrue()
    {
        EntityManagerFactory emf = conexion.getInstancia().getEMF();
        EntityManager em = emf.createEntityManager();
        Query qr;
        qr = em.createNamedQuery("Edificio.findByAnulado");
        qr.setParameter("Anulado", true);
        List<Edificio> lista = qr.getResultList();
        return lista;
    }
}
